#ifndef PROCESSMANAGER_H
#define PROCESSMANAGER_H
#include <list>
#include "Process.h"

class ProcessManager
{
	typedef std::list<StrongProcessPtr> ProcessList;
	ProcessList m_processList;

public:
	// Destructor
	~ProcessManager();
	
	// Interfaces
	unsigned int UpdateProcesses(unsigned long deltaMS);
	WeakProcessPtr AttachProcess(StrongProcessPtr pProcess);
	void AbortAllProcesses(bool abortStatus);

	// Accessors
	unsigned int GetProcessCount(void)const {return m_processList.size();}

private:
	// Only called by the destructor
	void ClearAllProcesses(void);


};
#endif